#!/usr/bin/env python
# -*- coding: utf-8 -*-
from __future__ import division
import calendar
import common
import pylibmc
import hashlib
import sys
reload(sys) 
sys.setdefaultencoding('utf8')
from tornado.web import RequestHandler
import pymongo
import redis
import re
import render
import cnsort
import codecs
from _base import BaseHandler
import datetime
sys.path.insert(0,'/home/liuyue/svn/wan/')
sys.path.insert(0,'/opt/web/')
from Tools import getPid
from Tools import connectMySQL 
import json
import json_ly
from util import cache, settings
import _clientCache as clientcache
import _clientUser as clientuser
import logging
import time
import tornado.ioloop
import settings
import MySQLdb
import csv

clear_cut_off = 0

videover52_1 = ['2.2','2.2.%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20']
videover52_2 = ['2.3','2.2.%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20']
videover61_1 = ['2.2.1','2.3,1','2.2.%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20']
videover61_2 = ['2.4','2.2.%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20']
videover59_1 = ['1.3.1','2.2.%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20']
videover59_2 = ['1.3.1','2.2.%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20']


paikever52_1 = ['1.4','2.2.%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20']
paikever52_2 = ['1.4','2.2.%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20']
paikever61_1 = ['1.4','2.2.%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20']
paikever61_2 = ['1.4','2.2.%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20']



def clear_date():
    global clear_cut_off
    if clear_cut_off != 0:
        return " and date != %s " % clear_cut_off
    else:
        return "  "
    




AboutVideo = {"BefDurTime":"播放前加载->平均时长:<br />计算公式:播放前加载总时长/采集到的总次数<br />说明：加载失败的不计算在内<br />","PlayDurTime":"播放中加载->平均时长:<br />计算公式:播放中加载加载总时长/采集到的总次数<br />说明：拖拽行为产生的加载未计算在内(属用户主动行为)<br />","Dur":"播放时长:<br />计算公式:采集到的单次播放时长累加<br />说明：Android Phonev2.1版，时长超过36,000秒的视为异常数据未计算在内<br />","HDSDDurTime":"->标清平均加载时长:<br />计算公式:播放中转换到标清格式的加载总时长/采集到的转换到标清的总次数<br />说明：转换到标清格式包括：高清转到标清、超清转换到标清<br />","SDHDDurTime":"->高清平均加载时长:<br />计算公式:播放中转换到高清格式的加载总时长/采集到的转换到高清的总次数<br />说明：转换到标清格式包括：标清转到高清、超清转换到高清<br />","HD2DurTime":"->超清平均加载时长:<br />计算公式:播放中转换到超清格式的加载总时长/采集到的转换到超清的总次数<br />说明：转换到标清格式包括：标清转到超清、高清转换到超清<br />","RelateAPIAveRespTime":"相关接口平均响应时长:<br />计算公式:相关视频接口响应总时长/采集到的调用总次数<br />","VdDetailAPIAveRespTime":"详情接口平均响应时长:<br />计算公式:视频详情接口响应总时长/采集到的调用总次数<br />","VdUrlAPIAveRespTime":"视频地址接口平均响应时长：<br />计算公式:视频地址接口响应总时长/采集到的调用总次数<br />","CompVV":"播放完成率:<br />计算公式:播放完成量/VV<br />",}



Video_Pad_app = [{'name':'PPTV网络电视 HD','id':'405667771','img':'405667771.jpg'},{'name':'优酷HD','id':'394075284','img':'394075284.jpg'},{'name':'乐视影视','id':'412395632','img':'412395632.jpg'},{'name':'搜狐视频 HD','id':'414430589','img':'414430589.jpg'},{'name':'PPS影音','id':'445375097','img':'445375097.jpg'},{'name':'奇艺高清影视','id':'409563112','img':'409563112.jpg'},{'name':'迅雷看看 HD','id':'396120024','img':'396120024.jpg'},{'name':'风行','id':'493899455','img':'493899455.jpg'},{'name':'土豆网 HD','id':'395893124','img':'395893124.jpg'},{'name':'腾讯视频HD','id':'407925512','img':'407925512.jpg'},{'name':'暴风影音 HD','id':'473589562','img':'473589562.jpg'}]


Video_Phone_app = [{'name':'优酷','id':'336141475','img':'336141475.jpg'},{'name':'乐视影视','id':'385285922','img':'385285922.jpg'},{'name':'搜狐视频 高清','id':'458587755','img':'458587755.jpg'},{'name':'PPS影音','id':'445375097','img':'445375097.jpg'},{'name':'奇艺影视','id':'393765873','img':'393765873.jpg'},{'name':'迅雷看看','id':'466321750','img':'466321750.jpg'},{'name':'土豆网','id':'395898626','img':'395898626.jpg'},{'name':'腾讯视频','id':'458318329','img':'458318329.jpg'},{'name':'风行','id':'522623973','img':'522623973.jpg'},{'name':'PPTV网络电视','id':'438426078','img':'438426078.jpg'}]

Paike_Phone_app = [{'name':'微拍','id':'429939556','img':'429939556.jpg'},{'name':'微录客','id':'454664502','img':'454664502.jpg'},{'name':'优酷拍客','id':'492031078','img':'492031078.jpg'},{'name':'光影DV','id':'552718710','img':'552718710.jpg'},{'name':'新浪拍客','id':'503810845','img':'503810845.jpg'}]

#{'name':'一下视频','id':'481587094','img':'481587094.jpg'},{'name':'微酷','id':'495877630','img':'495877630.jpg'},{'name':'爱摄汇','id':'484428626','img':'484428626.jpg'},{'name':'VIDA','id':'454984086','img':'454984086.jpg'}



def CollectionUrl(_username,_url):
    _datetime = time.strftime('%Y%m%d',time.localtime(time.time()))
    db = connectMySQL.connMySQL_stat()
    c = db.cursor()
    try:
        c.execute(" insert into `stat_url_collection` (`username`,`url`,`date`) values ('%s','%s','%s') " % (_username,_url,_datetime) )
    except:
        pass

def genTableResultInc3(_last,_now,value,xy,_format):
    _str = ""
    
    cha = _now - _last
                    
    if cha > 0:
        jiantou = "<span class='inc_tag' style='margin-left: 5px;' title='0%'><b> ↑ </b></span>"
    elif cha < 0:
        jiantou = "<span class='des_tag' style='margin-left: 5px;' title='0%'><b> ↓ </b></span>"
    else:
        jiantou = "<span style='margin-left: 5px;' title='0%'><b> - </b></span>"
    if xy == 0:
        jiantou = "<span style='margin-left: 5px;' title='0%'><b> - </b></span>"
    
    
    if value == "CompVV":
        nl = str(_now).split(".")
        #print nl
        if len(str(nl[1])) < 4:
            shu = "%s0%s" % (_now * 100,"%")
        else:
            shu = "%s%s" % (_now * 100,"%")
    else:
        if checkValueMode(value):
            nl = str(_now).split(".")
            if len(str(nl[1])) < 2:
                shu = "%s0%s" % (_now,"")
            else:
                shu = "%s%s" % (_now,"")
        else:
            shu = "%s%s" % (num2money(_now),"")
    
    _str += "\"%s\"%s" % (shu,_format)
    return _str


def checkValueMode(value):
    if (value == 'VVUV' or value == 'DurVV' or value == 'DurUV' or value == 'CompVV' or value == '播BefDurTime' or value == 'PlayDurTime' or value == 'PlayTimeVV' or value == 'PlayDurVV' or value == 'HDSDDurTime' or value == 'SDHDDurTime' or value == 'RelateAPIAveRespTime' or value == 'VdDetailAPIAveRespTime' or value == 'VdUrlAPIAveRespTime' or value == 'transcodetime'):
        return True
    else:
        return False


def getxingqi(_d):
    now = datetime.datetime.strptime(_d,'%Y%m%d')
    _day = now.weekday()
    if _day == 0:
        return "周一"
    elif _day == 1:
        return "周二"
    elif _day == 2:
        return "周三"
    elif _day == 3:
        return "周四"
    elif _day == 4:
        return "周五"
    elif _day == 5:
        return "周六"
    elif _day == 6:
        return "周日"


def num2money(num, decimals = 0, err = ''):
    u''' 将数字格式化为金额样式，参数为数值，返回字符串

    num         要转换的数值
    decimals    保留小数位数
    err         出现错误时的返回值
    '''
    try:
        s = '' if num >= 0 else '-'
        y = r'%.' + str(decimals) + 'f'
        x = y % abs(num)
        decimal2 = decimals + 1 if decimals else decimals
        for i in range(len(x) - decimal2 - 3, 0, -3):
            x = '%s,%s' % (x[:i], x[i:])
        return '%s%s' % (s, x)
    except:
        return err
